package com.fg.cloud.manager.service.agency;

import java.util.List;

import com.fg.cloud.common.PageUtils;
import com.fg.cloud.common.construction.Select;
import com.fg.cloud.common.construction.Tree;
import com.fg.cloud.manager.entry.agency.AgencyAreaEntity;
import com.fg.cloud.manager.entry.agency.vo.AgencyAreaVo;
import com.fg.cloud.manager.service.BaseService;

/**
 * 经销商-区域service
 * @author around
 * @date 2017-6-23
 */
public interface AgencyAreaService extends BaseService {

	/**
	 * Description:动态修改
	 * @param area
	 * @return
	 * @author around
	 * @date 2017年9月27日下午12:04:07
	 */
	boolean updateByPrimaryKeySelective(AgencyAreaVo area);
	
	/**
	  * Description:更新用户区域
	  * @param userId
	  * @param roleIds
	  * @return
	  * @author shaoqiping
	  * @date 2017年9月7日上午10:40:46
	*/
	public boolean updateUserAreas(Long userId, String roleIds);
	/**
	 * 分页查询，动态传参绑定
	 * @param pageinfo PageUtils
	 */
	void findList(PageUtils<AgencyAreaEntity> pageinfo);

	/**
	 * 查询经销商区域信息
	 * @param facId
	 * @return List<AgencyAreaVo>
	 */
	List<AgencyAreaVo> findList(Long facId);
	
	List<Select> findListByFacId(Long facId);
	
	/**
	 * Description:查询指定厂商用户可看的区域，并含是否赋予权限
	 * @param facId
	 * @param userId
	 * @return
	 * @author around
	 * @date 2017年9月7日上午9:38:05
	 */
	List<Tree> findListByUser(Long facId, Long userId);
	
	List<Tree> findTreeList(Long facId);
	
	/**
	 * Description:查询经销商区域，根据指定区域
	 * @param facId
	 * @param filterArea
	 * @return
	 * @author around
	 * @date 2017年10月11日下午2:50:27
	 */
	List<Tree> findListByNews(Long facId, String filterArea);
	
	/**
	 * 查询区域关联的经销商信息
	 * @param areaId
	 * @return
	 */
	long selectAgencyByArea(Long areaId);
	
	/**
	 * 修改区域状态
	 * @param id
	 * @param number
	 * @return true:成功
	 */
	boolean updateStatus(Long id, String number);
	
	/**
	 * Description:校验
	 * @param id
	 * @param name
	 * @return
	 * @author around
	 * @param facId 
	 * @date 2017年8月27日下午4:49:06
	 */
	boolean verifyUniquely(Long id, String name, Long facId);
	
	/**
	 * Description:根据区域名查区域ID
	 * @param str
	 * @param facId
	 * @return
	 * @author dingjiang
	 * @date 2017年9月22日下午2:19:48
	 */
	Long selectId(String str, Long facId);
	
}
